require(['./config'], () => {
    require(['template', 'header', 'footer'], (template,header) => {
        class Shopping {
            constructor () {
              this.renderTable()
              this.calcAllMoney()
              this.delItem()
            }
            renderTable () {
              // 根据localStorage的购物车数据渲染页面
              let cart = localStorage.getItem('cart')
              if (cart) {
                // 渲染表格
                this.cart = JSON.parse(cart)
                $('#shop_cont').html(template('srcShop', { cart: this.cart }))
              } else {
                $('.shangping1').show()
              }
            }
            calcAllMoney () {
              // 不管用户做了什么操作，我都从修改之后的数据里从0开始算总价
              const money = this.cart.reduce((all, shop) => {
                if (shop) all += shop.jg
                return all
              }, 0)
              $('#Paymoney').html(money.toFixed(2))
            }
            delItem(){
                const _this=this
                $('.yc').on('click',function () {
                    // 找到本项id
                   let id = $(this).parent().parent().attr('data-id');
                //    建立空数组
                    let _arr=[]
                    // 遍历所有数据，与本项不同的加入数组
                   _this.cart.forEach((item)=>{
                       if(id!=item.id){
                        _arr.push(item)
                       }
                   })
                //    排除了本项的数组覆盖本地数据
                   localStorage.setItem('cart', JSON.stringify(_arr))
                   //删掉本项的框
                    $(this).parent().parent().remove()
                    //更新cart，从新获取一次本地数据
                    _this.cart=JSON.parse(localStorage.getItem('cart'))
                    //调用计算总价
                    // _this.getAllPrice()
                    _this.calcAllMoney()
                    header.calcCartCount()
                })
            }
          }
          new Shopping()
    })
})